# Copyright (C) 2025 武汉凹语言科技有限公司
# SPDX-License-Identifier: AGPL-3.0-or-later

# ESP32-C3 机器的 串口 设备地址
常量 $串口 = 0x60000000

# 用于输出的字符串
全局 $信札 = "Hello, RISCV, 睿斯克发威 裸金属(RISC-V Baremetal)!\n\x00"

# 主函数
函数 _启动:
%开篇:
    # 参甲格 = 字符串地址
    常赋某  参甲格, %高位($信札)         # 高20位 = 当前PC + 偏移
    某加常  参甲格, 参甲格, %低位($信札)  # 低12位

%精卫填海:
    读微正  参乙格, 0(参甲格)   # 取一个字节
    若等转  参乙格, 零格, %收工 # 如果是0则结束

    # 暂甲格 = 串口 地址
    常赋某  暂甲格, %高位($串口)           # 串口 高20位
    某加常  暂甲格, 暂甲格, %低位($串口)   # 串口 低12位

    写微整  参乙格, 0(暂甲格)        # 写到 串口 寄存器
    某加常  参甲格, 参甲格, 1        # 下一个字符
    转常址  零格, %精卫填海

%收工:
    # 程序结束，进入死循环
%苦海:
    转常址  零格, %苦海
完毕
